コンテナによるRStudio環境準備とRStudioプロジェクト作成について
データアナリティクス事業本部の鈴木です。
『クラスメソッド 機械学習チーム アドベントカレンダー 2022』の10日目のエントリーになります。
昨日(9日目)はLambdaのコンテナデプロイでYOLOv5の推論エンドポイントを作成する記事でした。AWSを使って自分で物体認識がしたい方からするとめちゃめちゃ熱い記事です。
現状、機械学習分野ではPythonを使う方が多いように思いますが、もちろん確率統計の理論的な論文を読んでいるときなど、サンプルコードがRであることがあります。
先日読んだ論文のサンプルコードがRStudioプロジェクトで作られていたのですが、.Rproj
ファイルをみて、「あれっ、これってなんだろう……」と思い、それだけで「もしかしてこのソースコードは自分には理解できないのでは!?」と思ってしまったので、その気持ちを乗り越えるため、基本的なことですが自分でぽちぽち作ってみることにしました。
ドキュメント
公式のドキュメントにRStudio Projectsの作成に関する記載があったので、こちらを参考にしました。
環境準備
今回はRockerとRancher Desktopを使用して環境を構築しました。
以下のdocker-compose.yml
を用意しておきます。
version: '3' services: rstudio: image: rocker/rstudio container_name: rstudio ports: - 8787:8787 environment: PASSWORD: RStudio_PASS TZ: Asia/Tokyo volumes: - ./R:/home/rstudio
ディレクトリ構造は以下のようにして、docker-compose up
で起動します。
# ディレクトリ構造 tree # . # ├── R/ # └── docker-compose.yml # コンテナの起動 docker-compose up
コンテナが起動したら、localhost:8787
にアクセスすると認証情報を求められるので、ユーザー名rstudio
とdocker-compose.yml
に記載したパスワードを入力してログインします。
Rancher Desktopは以下のブログを参考に1.6.2
をインストールしました。
RStudioはRStudio Server 2022.07.2 Build 576
でした。
やってみる
環境が準備できたので、ぽちぽちRStudioプロジェクトを作って、どんな感じでできるのか見てみました。
RStudioにログインしたら、File
> New Project...
をクリックします。
New Project Wizard
でNew Directory
をクリックします。
New Project
をクリックします。
Directory name
はsample_project
としておきます。
以下のようにファイルが作成されました。
tree # . # ├── R # │ └── sample_project # │ └── sample_project.Rproj # └── docker-compose.yml
プロジェクトのトップが開かれ、RStudio側のセッションも新しいものになります。
sample_project.Rproj
の中身は以下のようになっていました。これが私が知りたかったファイルです。拡張子.Rproj
のファイルは、プロジェクト オプション設定についての記載があり、ファイルシステムから直接プロジェクトを開くためのショートカットとしても使用できるそうです。
Version: 1.0 RestoreWorkspace: Default SaveWorkspace: Default AlwaysSaveHistory: Default EnableCodeIndexing: Yes UseSpacesForTab: Yes NumSpacesForTab: 2 Encoding: UTF-8 RnwWeave: Sweave LaTeX: pdfLaTeX
ここに記載の内容は、Project Options
から確認できました。プロジェクト オプションは、設定することでRStudioの動作をカスタマイズするためのオプションです。これは例えばRStudioのUIからsample_project.Rproj
ファイルをクリックするとでてきました。
確かに、.Rproj
の拡張子のファイルに記載されているのと同じ内容の設定ができますね。
おわりに
この記事では、RStudioからRStuioプロジェクトを作成してみて、できるファイルについて確認しました。.Rproj
の拡張子のファイルはプロジェクトの設定ファイルで、ショートカットの役割も果たしてくれる便利なファイルであることも分かりました。Pythonメインで使っていると、いざ理論的な方面に興味がでて論文のサンプルコードを読んでもこういった細かいところで分からないと気になってしまいますが、また一歩前進できたのでよかったです。コンテナでの環境構築もご紹介したので、興味がある方はいろいろ触ってみて頂ければと思います。